package so.ifl.servcie;

import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Transactional;

import so.ifl.vo.StaffDetailVo;
import so.ifl.vo.StaffVo;

/**
 *create by aaron.lu
 *create at 2013-3-9 下午5:36:56
 *<mailto: atyuan.lu@gmail.com>
 **/
@Transactional
public interface StaffService {
	
	/**
	 * 查询员工信息
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:00:22
	 * <mailto: atyuan.lu@gmail.com>
	 * @param params
	 * @param offset
	 * @param limit
	 * @return
	 *
	 */
	public List<StaffVo> queryStaffWithParamAndPagination(Map<String, Object> params, Integer offset, Integer limit);
	
	/**
	 * 统计员工数目
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:01:43
	 * <mailto: atyuan.lu@gmail.com>
	 * @param params
	 * @return
	 *
	 */
	public Integer countStaffWithParam(Map<String, Object> params);
	
	/**
	 * 查询员工明细信息
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:03:24
	 * <mailto: atyuan.lu@gmail.com>
	 * @param params
	 * @param offset
	 * @param limit
	 * @return
	 *
	 */
	public List<StaffDetailVo> queryStaffDetail(Map<String, Object> params, Integer offset, Integer limit);
	
	/**
	 * 新增员工信息
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:04:32
	 * <mailto: atyuan.lu@gmail.com>
	 * @param staffVo
	 *
	 */
	public void insertStaff(StaffVo staffVo);
	
	/**
	 * 新增员工明细
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:06:04
	 * <mailto: atyuan.lu@gmail.com>
	 * @param staffDetailVo
	 *
	 */
	public void insertStaffDetail(StaffDetailVo staffDetailVo);
	
	/**
	 * 删除员工信息
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:07:29
	 * <mailto: atyuan.lu@gmail.com>
	 * @param staffId
	 *
	 */
	public void deleteStaff(Integer staffId);
	
	/**
	 * 删除员工明细信息
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:08:33
	 * <mailto: atyuan.lu@gmail.com>
	 * @param staffDetailId
	 *
	 */
	public void deleteStaffDetail(Integer staffDetailId);
	
	
	/**
	 * 更新员工信息
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:09:57
	 * <mailto: atyuan.lu@gmail.com>
	 * @param staffVo
	 *
	 */
	public void updateStaff(StaffVo staffVo);
	
	/**
	 * 更新员工明细信息
	 * create by aaron.lu
	 * create at 2013-3-10 上午9:10:58
	 * <mailto: atyuan.lu@gmail.com>
	 * @param staffDetailVo
	 *
	 */
	public void updateStaffDetail(StaffDetailVo staffDetailVo);
	
}
